home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / bin / getweb < prev    next >
Encoding:
Text File  |  2009-03-27  |  10.4 KB  |  429 lines

  1. #!/bin/sh
  2.  
  3. #
  4. # (c) Copyright Rick Richardson 2008
  5. #
  6.  
  7. #
  8. # PLEASE don't remove the copyright statements.  They should 
  9. # be displayed to the human that is running this.
  10. #
  11.  
  12. VERSION='$Id: getweb.in,v 1.82 2008/12/31 07:14:19 rick Exp $'
  13.  
  14. WGETOPTS="--passive-ftp -q"
  15.  
  16. usage() {
  17. cat <<EOF
  18.  
  19. Usage:
  20.     ./getweb something
  21.  
  22.     Convenience script to get extra somethings from the web,
  23.     such as ICC color profiles, firmware, PPD files, etc.
  24.  
  25.     $ ./getweb 2600n    # Get HP Color LaserJet 2600n .ICM files
  26.     $ ./getweb 1600    # Get HP Color LaserJet 1600 .ICM files
  27.     $ ./getweb 1500    # Get HP Color LaserJet 1500 .ICM files
  28.     $ ./getweb 1215    # Get HP Color LaserJet CP1215 .ICM files
  29.  
  30.     $ ./getweb 2530    # Get Konica Minolta 2530 DL .ICM files
  31.     $ ./getweb 2490    # Get Konica Minolta 2490 MF .ICM files
  32.     $ ./getweb 2480    # Get Konica Minolta 2480 MF .ICM files
  33.     $ ./getweb 6115    # Get Xerox Phaser 6115MFP .ICM files
  34.  
  35.     $ ./getweb 2430    # Get Konica Minolta 2430 DL .ICM files
  36.     $ ./getweb 2300    # Get Minolta 2300 DL .ICM files
  37.     $ ./getweb 2200    # Get Minolta 2200 DL .ICM files
  38.     $ ./getweb cpwl    # Get Minolta Color PageWorks/Pro L .ICM files
  39.  
  40.     $ ./getweb 300    # Get Samsung CLP-300 .ICM files
  41.     $ ./getweb 315    # Get Samsung CLP-315 .ICM files
  42.     $ ./getweb 600    # Get Samsung CLP-600 .ICM files
  43.     $ ./getweb 610    # Get Samsung CLP-610 .ICM files
  44.     $ ./getweb 2160    # Get Samsung CLX-2160 .ICM files
  45.     $ ./getweb 3160    # Get Samsung CLX-3160 .ICM files
  46.     $ ./getweb 3175    # Get Samsung CLX-3175 .ICM files
  47.     $ ./getweb 6110    # Get Xerox Phaser 6110 and 6110MFP .ICM files
  48.  
  49.     $ ./getweb 500    # Get Lexmark C500 .ICM files
  50.  
  51.     $ ./getweb 3100    # Get Oki C3100 .ICM files
  52.     $ ./getweb 3200    # Get Oki C3200 .ICM files
  53.     $ ./getweb 3300    # Get Oki C3300 .ICM files
  54.     $ ./getweb 3400    # Get Oki C3400 .ICM files
  55.     $ ./getweb 3530    # Get Oki C3530 MFP .ICM files
  56.     $ ./getweb 5100    # Get Oki C5100 / C5150n .ICM files
  57.     $ ./getweb 5200    # Get Oki C5200 .ICM files
  58.     $ ./getweb 5500    # Get Oki C5500 .ICM files
  59.     $ ./getweb 5600    # Get Oki C5600 .ICM files
  60.     $ ./getweb 5800    # Get Oki C5800 .ICM files
  61.  
  62.     $ ./getweb 1020    # Get HP LJ 1020 firmware file
  63.     $ ./getweb 1018    # Get HP LJ 1005 firmware file
  64.     $ ./getweb 1005    # Get HP LJ 1005 firmware file
  65.     $ ./getweb 1000    # Get HP LJ 1000 firmware file
  66.  
  67.     $ ./getweb p1505    # Get HP LJ P1505 firmware file
  68.     $ ./getweb p1008    # Get HP LJ P1008 firmware file
  69.     $ ./getweb p1007    # Get HP LJ P1007 firmware file
  70.     $ ./getweb p1006    # Get HP LJ P1006 firmware file
  71.     $ ./getweb p1005    # Get HP LJ P1005 firmware file
  72.  
  73.     $ ./getweb all    # Get everything above
  74.  
  75.     $ ./getweb 2300dl_fw # Get Minolta 2300DL v2.55 firmware (experts only)
  76.  
  77.     $ ./getweb update    # Get latest version of this software.
  78. EOF
  79.     exit 1
  80. }
  81.  
  82. #
  83. #       Report an error and exit
  84. #
  85. PROGNAME=$0
  86. error() {
  87.     echo "`basename $PROGNAME`: $1" >&2
  88.     exit 1
  89. }
  90.  
  91. SYSTEM=`uname -s`
  92. WGET=`type wget 2>/dev/null`
  93. if [ "$SYSTEM" = Darwin -a "$WGET" = "" ]
  94. then
  95.     WGETOPTS=
  96.     wget() {
  97.     shift
  98.     curl -o $*
  99.     }
  100. fi
  101.  
  102. #
  103. #    Download a .EXE file from the web, unzip it, and extract the
  104. #    files we want
  105. getexe() {
  106.     url="$1"
  107.     exefile="$2"
  108.     shift; shift
  109.     
  110.     wget $WGETOPTS -O $exefile "$url/$exefile" ||
  111.     error "Couldn't download $url/$exefile"
  112.     unzip -oj $exefile "$@"
  113.     rm $exefile
  114. }
  115.  
  116. #
  117. #    Download a .tar.gz file from the web, untar it, and extract the
  118. #    files we want
  119. gettgz() {
  120.     url="$1"
  121.     file="$2"
  122.     what="$3"
  123.     
  124.     wget $WGETOPTS -O $file "$url/$file" ||
  125.     error "Couldn't download $url/$file"
  126.     gunzip <$file | tar xvf - $what
  127.     rm $file
  128. }
  129.  
  130. copyright() {
  131.     echo
  132.     echo "$1"
  133.     echo
  134. }
  135.  
  136. getone() {
  137.     case "$1" in
  138.     lj1000|1000)
  139.     gettgz \
  140.         http://foo2zjs.rkkda.com/firmware sihp1000.tar.gz \
  141.         ""
  142.     #echo "provided"
  143.     #getexe \
  144.         #ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2 \
  145.         #lj1488en.exe \
  146.         #sihp1000.img
  147.     copyright "(c) Copyright Hewlett-Packard 2001"
  148.     ;;
  149.     lj1005|1005)
  150.     gettgz \
  151.         http://foo2zjs.rkkda.com/firmware sihp1005.tar.gz \
  152.         ""
  153.     #echo "provided"
  154.     #getexe \
  155.         #ftp://ftp.hp.com/pub/softlib/software2/COL2222/lj-10067-2 \
  156.         #lj1005hostbased-en.exe \
  157.         #sihp1005.img
  158.     copyright "(c) Copyright Hewlett-Packard 2002"
  159.     ;;
  160.     lj1018|1018)
  161.     gettgz \
  162.         http://foo2zjs.rkkda.com/firmware sihp1018.tar.gz \
  163.         ""
  164.     copyright "(c) Copyright Hewlett-Packard 2005"
  165.     ;;
  166.     lj1020|1020)
  167.     gettgz \
  168.         http://foo2zjs.rkkda.com/firmware sihp1020.tar.gz \
  169.         ""
  170.     copyright "(c) Copyright Hewlett-Packard 2005"
  171.     ;;
  172.     [pP]100[57])
  173.     gettgz \
  174.         http://foo2zjs.rkkda.com/firmware sihpP1005.tar.gz \
  175.         ""
  176.     copyright "(c) Copyright Hewlett-Packard 2008"
  177.     ;;
  178.     [pP]100[68])
  179.     gettgz \
  180.         http://foo2zjs.rkkda.com/firmware sihpP1006.tar.gz \
  181.         ""
  182.     copyright "(c) Copyright Hewlett-Packard 2008"
  183.     ;;
  184.     [pP]1505)
  185.     gettgz \
  186.         http://foo2zjs.rkkda.com/firmware sihpP1505.tar.gz \
  187.         ""
  188.     copyright "(c) Copyright Hewlett-Packard 2008"
  189.     ;;
  190.     2200dl|2200)
  191.     getexe \
  192.         ftp://ftp.minolta-qms.com/pub/crc/out_going/win2000 m22dlicc.exe \
  193.         "*.icm"
  194.     copyright "(c) Copyright Minolta-QMS 1999"
  195.     ;;
  196.     2300dl|2300)
  197.     getexe \
  198.         ftp://ftp.minolta-qms.com/pub/crc/out_going/other m23dlicc.exe \
  199.         "*.icm"
  200.     gettgz \
  201.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  202.         ""
  203.     copyright "(c) Copyright Minolta-QMS 2001"
  204.     ;;
  205.     2300dl_fw)
  206.     # 2300DL firmware upgrade to v2.55
  207.     BASE="http://crm01.minoltaeurope.com"
  208.     BASE="$BASE/openmind/technic/swfw/mswprtdl.nsf/logdwl"
  209.     FILE="MC2300DL_v255.zip"
  210.     URL="$BASE?openagent&4CE486C20839C75AC1256D9E001EBD1F/\$File/$FILE"
  211.     wget $WGETOPTS "$URL" || error "Couldn't download $URL"
  212.     echo "*** Now use a windows box to unzip and install $FILE ***"
  213.     ;;
  214.     cpwl|pageworks)
  215.     if true; then
  216.         getexe \
  217.         ftp://ftp.minolta-qms.com/pub/crc/out_going/windows cpplxp.exe \
  218.         "*.IC_"
  219.         for i in C*.IC_
  220.         do
  221.         base=`basename $i .IC_`
  222.         mv $base.IC_ $base.ic_
  223.         ./msexpand $base.ic_
  224.         rm -f $base.ic_
  225.         done
  226.         copyright "(c) Copyright Minolta-QMS 1998"
  227.     fi
  228.     ;;
  229.     2430)
  230.     gettgz \
  231.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  232.         ""
  233.     copyright "(c) Copyright Konica Minolta 2003"
  234.     ;;
  235.     2530|2490|6115|2480)
  236.     gettgz \
  237.         http://foo2lava.rkkda.com/icm km2530.tar.gz \
  238.         ""
  239.     copyright "(c) Copyright Konica Minolta 2005"
  240.     copyright "(c) Copyright Rick Richardson 2007.  All Rights Reserved"
  241.     ;;
  242.     1215|1500|1600|2600*)
  243.     gettgz \
  244.         http://foo2hp.rkkda.com/icm hpclj2600n.tar.gz \
  245.         ""
  246.     gettgz \
  247.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  248.         "km2430_2.icm"
  249.     copyright "(c) Copyright Hewlett-Packard 2003"
  250.     copyright "(c) Copyright Rick Richardson 2006.  All Rights Reserved"
  251.     gettgz \
  252.         http://foo2hp.rkkda.com/icm hp1215.tar.gz \
  253.         ""
  254.     copyright "(c) Copyright Rick Richardson 2008.  All Rights Reserved"
  255.     ;;
  256.     300|315|2160|3160|3175|6110)
  257.     gettgz \
  258.         http://foo2qpdl.rkkda.com/icm samclp300.tar.gz \
  259.         ""
  260.     copyright "(c) Copyright Rick Richardson 2007.  All Rights Reserved"
  261.     gettgz \
  262.         http://foo2qpdl.rkkda.com/icm samclp315.tar.gz \
  263.         ""
  264.     copyright "(c) Copyright Rick Richardson 2008.  All Rights Reserved"
  265.     ;;
  266.     600|610)
  267.     ;;
  268.  
  269.     500)
  270.     gettgz \
  271.         http://foo2slx.rkkda.com/icm lexc500.tar.gz \
  272.         ""
  273.     copyright "(c) Copyright Lexmark 2006"
  274.     ;;
  275.  
  276.     oki)
  277.     echo "Please wait, ~20MB is being downloaded from a slow site..."
  278.     getexe \
  279.         http://www.okiprintingsolutions.at/binaryData/16516/ \
  280.         ICCProfiles.zip \
  281.         "*OK3200*ICM" "*OK5600*ICM" "*rom732*7.zip"
  282.     unzip -oj *rom732*7.zip "*C3400*ICM"
  283.     rm -f *rom732*7.zip
  284.     for i in OK*ICM C3400*ICM; do
  285.         base=`basename $i .ICM`
  286.         mv "$base.ICM" "$base.icm"
  287.     done
  288.     copyright "(c) Copyright Okidata 2005, 2006"
  289.     ;;
  290.     3100|3200|5100|5150|5200|5250)
  291.     gettgz \
  292.         http://foo2hiperc.rkkda.com/icm okic3200.tar.gz \
  293.         ""
  294.     copyright "(c) Copyright Okidata 2005"
  295.     ;;
  296.     3300|3400|3530)
  297.     gettgz \
  298.         http://foo2hiperc.rkkda.com/icm okic3400.tar.gz \
  299.         ""
  300.     copyright "(c) Copyright Okidata 2006"
  301.     ;;
  302.     5500|5600|5800)
  303.     gettgz \
  304.         http://foo2hiperc.rkkda.com/icm okic5600.tar.gz \
  305.         ""
  306.     copyright "(c) Copyright Okidata 2006"
  307.     ;;
  308.  
  309.     xPPD)
  310.     # Snarf PPD files from linuxprinting
  311.     [ -d PPD ] || mkdir PPD
  312.     for i in foomatic-db/printer/*.xml
  313.     do
  314.         case "$i" in
  315.         */Gen*)    continue;;
  316.         esac
  317.         printer=`basename $i .xml`
  318.         echo $printer
  319.         case "$printer" in
  320.         *1500*|*oak*)    driver=foo2oak;;
  321.         *)            driver=foo2zjs;;
  322.         esac
  323.         URL="http://www.linuxprinting.org/ppd-o-matic.cgi"
  324.         URL="$URL?driver=$driver&printer=$printer"
  325.         URL="$URL&.submit=Generate+PPD+file"
  326.         URL="$URL&show=1&.cgifields=shortgui&.cgifields=show"
  327.         wget $WGETOPTS -O PPD/$printer.ppd "$URL" ||
  328.         error "Couldn't dowload $URL"
  329.     done
  330.     ;;
  331.     ppd)
  332.     # Generate PPD files using local tools
  333.     [ -d PPD ] || mkdir PPD
  334.     for i in foomatic-db/printer/*.xml
  335.     do
  336.         printer=`basename $i .xml`
  337.         echo $printer
  338.         case "$printer" in
  339.         *M1005*|*M1120*)    driver=foo2xqx;;
  340.         *P1[05]0[56]*)    driver=foo2xqx;;
  341.         *P2014*)        driver=foo2xqx;;
  342.         *1500*|*OAKT*)    driver=foo2oak;;
  343.         *1600*|*2600*)    driver=foo2hp;;
  344.         *1215*)        driver=foo2hp;;
  345.         *2530*|*24[89]0*)    driver=foo2lava;;
  346.         *6115*)        driver=foo2lava;;
  347.         *C500*)        driver=foo2slx;;
  348.         *C3[234]00*)    driver=foo2hiperc;;
  349.         *C5[12568]00*)    driver=foo2hiperc;;
  350.         *CLP*|*CLX*|*6110*)    driver=foo2qpdl;;
  351.         *)            driver=foo2zjs;;
  352.         esac
  353.         ENGINE=../foomatic/foomatic-db-engine
  354.         PERL5LIB=$ENGINE/lib $ENGINE/foomatic-ppdfile \
  355.         -d $driver -p $printer \
  356.         > PPD/$printer.ppd
  357.         # | sed -e 's/\(^\*NickName.*\)"/\1 (foo2zjs recommended)"/'
  358.     done
  359.     ;;
  360.     update)
  361.     url=http://foo2zjs.rkkda.com
  362.     file=foo2zjs.tar.gz
  363.     wget $WGETOPTS -O $file $url/$file ||
  364.         error "Couldn't download $url/$exefile"
  365.     mv getweb getweb.old
  366.     HERE=`pwd`
  367.     cd .. 
  368.     tar zxf $HERE/$file
  369.     cd $HERE
  370.     echo "The tarball is extracted and the current directory is up to date."
  371.     echo -e "Remove the tarball (y/n)? \c"
  372.     read ans
  373.     if [ "$ans" = y ]; then
  374.         rm -f $file
  375.     fi
  376.     ;;
  377.     "")
  378.     usage
  379.     ;;
  380.     *)
  381.     error "Don't know how to get extra stuff for printer $1"
  382.     ;;
  383.     esac
  384. }
  385.  
  386. if [ $# = 0 ]; then
  387.     echo "$VERSION"
  388.     usage
  389. fi
  390.  
  391. for i in $*
  392. do
  393.     case "$1" in
  394.     all)
  395.     getone 1000
  396.     getone 1005
  397.     getone 1018
  398.     getone 1020
  399.  
  400.     getone p1005
  401.     getone p1006
  402.     getone p1505
  403.  
  404.     getone 2200
  405.     getone 2300
  406.     # getone 2430 already done
  407.     # getone cpwl # file doesn't exist 1/28/08
  408.  
  409.     getone 2600n
  410.     # getone 1215 # already done
  411.  
  412.     getone 2530
  413.  
  414.     getone 300
  415.     # getone 6110 already done
  416.     getone 600
  417.  
  418.     getone 500
  419.  
  420.     getone 3200
  421.     getone 3400
  422.     getone 5600
  423.     ;;
  424.     *)    
  425.     getone $i
  426.     ;;
  427.     esac
  428. done
  429.